#pragma once

#include <iostream>
#include <memory>
#include <signal.h>
#include "Protocol.hpp"
#include "TCPServer.hpp"
#include "Log.hpp"

class TCPServer;

// HTTP服务器
class HttpServer
{
private:
    int _port; // 端口号
    std::unique_ptr<TCPServer> tsvr_ptr;
public:
    HttpServer(int port)
        : _port(port), tsvr_ptr(std::make_unique<TCPServer>(port))
    {
    }

    // 初始化服务器
    void InitServer()
    {
        signal(SIGPIPE, SIG_IGN); // 忽略SIGPIPE信号，防止写入时崩溃
    }

    void Loop()
    {
        // 使用TCP服务器的方法完成Http服务器的工作
        tsvr_ptr->Loop();
    }
    
    ~HttpServer()
    {
    }
};
